package utils

import (
	"github.com/go-playground/validator/v10"
	"reflect"
)

// 返回结构体中的msg参数 需要传obj指针
func GetValidMsg(err error, obj any) string {
	of := reflect.TypeOf(obj)
	if errors, ok := err.(validator.ValidationErrors); ok {
		for _, fieldError := range errors {
			// 循环每一个错误
			// 根据报错字段名,获取结构体的具体字段
			if field, exits := of.Elem().FieldByName(fieldError.Field()); exits {
				return field.Tag.Get("msg")
			}
		}
	}
	return err.Error()
}
